ci: gate pull requests with the existing test scripts - #11
Merged
Conversation
Adds .github/workflows/ci.yml (backlog D1/D3). Until now the only automation was the tag-triggered release workflow, so every pull request merged ungated. Jobs, all invoking the same scripts a developer runs locally: - static: shell syntax across sh/bash/zsh, docs/qa/evidence checksum verification, and a whitespace check against the PR base. - runtime: pnpm test:runtime (jsdom context-pruning suite). - protocol: apps/headless/test.sh inside swift:6.1-bookworm, the same image Dockerfile.linux builds with. - web: eslint plus next build for apps/web. - linux-e2e: Tests/linux-docker.sh, uploading the QA evidence bundle. - macos: build.sh plus test.sh on macos-latest. - macos-e2e: Tests/macos-e2e.sh gated to nightly cron, workflow_dispatch, or the macos-e2e label, because it needs a GUI session and mutates com.headless.app user defaults. Docs updated to match: AGENTS.md describes the gate, ROADMAP marks the Phase 1 CI item done, and backlog D1/D3 record what shipped and what remains (branch protection, arm64 E2E on PRs).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes backlog §D1 and §D3.
Until now the only automation was the tag-triggered release workflow, so every pull request — #4 through #9 — merged with no automated checks at all. This adds
.github/workflows/ci.yml.Design
Every job invokes the same script a developer runs locally, the property
release.ymlalready has. CI can't drift into a separate build path.staticdocs/qa/evidencechecksums, whitespace vs baseruntimepnpm test:runtimeprotocolapps/headless/test.shinswift:6.1-bookwormDockerfile.linuxbuilds withwebnext buildlinux-e2eTests/linux-docker.shmacosbuild.sh+test.shmacos-e2eTests/macos-e2e.shworkflow_dispatch, or themacos-e2elabel, because it needs a GUI session and mutatescom.headless.appuser defaultsTriggers: pull requests, pushes to
main, nightly cron, manual dispatch. Concurrency group cancels superseded runs.Verified locally
sha256sum -con the committed QA evidence passespnpm test:runtimepasses, reproducing the documented pruning numbers (48,428 → 895 bytes)pnpm install --frozen-lockfileworks for both workspace filtersnext buildsucceeds (6/6 static pages)Docker isn't reachable from my sandbox, so
linux-e2erests on the precedent thatrelease.ymlalready runslinux-docker.shonubuntu-latest— this PR's own run is the real proof.Docs updated in the same commit
AGENTS.mddescribes the gate, the roadmap marks the Phase 1 CI item done, and backlog §D1/§D3 record what shipped plus what remains.Follow-ups (not in this PR)